The advent of the information age has increased the need for storing, retrieving and processing such information. While alphanumeric text information can be efficiently encoded in a binary code representing each character, other types of information, such as pictures, graphs and other pictorial documents cannot readily be reduced to such simple coding schemes. Moreover, the enormous volume of data to be stored requires storage media of correspondingly high capacity. Optical storage systems such as microfilm, microfiche and optical disks offer the possibility of very large scale storage and retrieval. Such optical storage and retrieval systems are disclosed in Irazoqui patent 3,456,817, issued July 29, 1969, I. L. Lopata patent 3,804,498, granted Apr. 16, 1974, and I. L. Lopata patent 4,025,176, granted May 24, 1977.
One of the major difficulties in the use of such optical data storage and retrieval systems has been the necessity to operate upon stored images optically. While scaling, windowing, zooming and enlarging are all possible optically, the apparatus necessary to perform such operations are large, bulky, expensive and relatively slow. It has therefore become common to scan such optical images to convert the information content to electronic signals. Electronic processing techniques and equipment, and more particularly, digital processing techniques, can then be used to process the electronic images. By using integrated circuit techniques, the size and cost of the processing equipment can be radically reduced while, at the same time, increasing the speed and accuracy of the processing.
The types of processes which take place in such opto-electronic storage and retrieval systems include scanning an optical image to produce a bit stream of pixels divided into lines and frames, electronically compressing such pixel bit streams for efficient electronic storage or electronic transmission, re-expanding compressed images to restore the original bit stream for display, scaling the image size and/or resolution and clipping the resulting image if it is too large for the display device, and rotating the image. All of these processes are known and have been performed by programmed processors such as the Texas Instruments TI 34010 Graphics System Processor (GSP). Unfortunately, the speed at which such processes can be implemented is limited by the speed of the processor, the complexity of the operation, and the complexity of the electronic image. Moreover, since such processors are essentially serial machines, each such process must be completed before the next process can be begun. For these and other reasons, many electronic images cannot be manipulated in real time, that is, with no significant delay after being requested by the user. Such real time image manipulation is a highly desirable characteristic of an image processing system.
One of the most difficult operations to accomplish rapidly is to scale electronic images. Rescaling can be accomplished by decimating (or duplicating) the pixels in each scan line and decimating (or duplicating) the scan lines in each frame. Such decimation and duplication is relatively simple for simple scaling ratios such as two-to-one, where every other pixel and line can be duplicated or removed. Scaling ratios represented by irrational fractions, however, present difficult decimation and duplication problems. It has therefore become common to provide only a few, fixed, relatively simple, usually binary, scaling ratios. Unfortunately, many display devices and scanning devices have built-in resolutions which do not fit into the available scaling ratios. It would be convenient to be able to select the scaling ratio dynamically, depending on the needs of the user, and to select entirely arbitrary scaling ratios to fit the requirement of the available devices. Moreover, it would likewise be desirable to perform such scaling in real time, without significant delays in displaying the resulting image.